1. Field of the Invention
Embodiments of the invention relates to benchmark profiling, specifically to benchmark profiling software applications configured to execute on large parallel or distributed computing systems.
2. Description of the Related Art
Distributed computing systems, such as grid computing and computer clusters, are useful tools for breaking down large computing tasks, or jobs, into many smaller tasks that execute concurrently. Used in this manner, distributed systems are highly effective tools to perform large computing tasks in a minimal amount of time.
Distributed systems typically contain a large number of heterogeneous systems containing one or more compute nodes. Because the heterogeneous systems have different hardware architectures, each provides different advantages in executing different types of software. For example, systems with large memories provide good architectures for running database applications. Systems with a number of specialized processors are optimal for specialized processing, such as processing video images.
A benchmark provides a software tool that analyzes the performance of a given hardware architecture, relative to a particular specific performance trait. A benchmark allows users to compare the efficiency of different architectures for the same performance task, allowing a best architecture for the software task to be determined.
Two common types of benchmarks include application benchmarks and synthetic benchmarks. Application benchmarks dynamically record performance metrics while a software application is executing. On the other hand, synthetic benchmarks mimic the performance of a piece of software on a system to predict performance metrics without actually executing the application. Both of these types of benchmarks may be used to analyze how efficient a given computer architecture is regarding different performance traits while executing (either actually or synthetically).